<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.Map" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/12/3
  Time: 14:30
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>empty运算</title>
</head>
<body>
<%--    empty运算可以判断一个数据是否为空,如果为空,则输出true，不为空输出false--%>
<%--    以下几种情况为空:--%>
<%--        1.值为null的时候为空--%>
<%--        2.值为空串的时候为空--%>
<%--        3.值是Object类型数组,长度为0的时候--%>
<%--        4.list集合,元素个数为0--%>
<%--        5.map集合,元素个数为0--%>
<%
    //1.值为null的时候
    request.setAttribute("emptyNull" , null);
    //2.值为空串的时候,为空
    request.setAttribute("emptyStr" , "");
    //3.值是object类型数组,长度为零的时候
    request.setAttribute("emptyArr" , new Object[]{});
    //4.List集合,元素的个数为零
    ArrayList<String> list = new ArrayList<>();
    //给list中添加一个元素
//    list.add("马龙");
    request.setAttribute("emptyList" , list);
    //5.map集合,元素个数为零
    Map<String, Object> map = new HashMap<>();
    //给map添加数据
    map.put("key1" , "value1");
    request.setAttribute("emptyMap" , map);

    //三元运算
    //表达式1 ? 表示2 : 表达式3
    //如果表达式1的值为真,就返回表达式2的值,如果表达式1的值为假,那么就返回表达式三的值

    Map<String, Object> hashMap = new HashMap<>();
    hashMap.put("a.a.a" , "aaaValue");
    hashMap.put("b+b+b" , "bbbValue");
    hashMap.put("c-c-c" , "cccValue");
    //将hashMap设置到请求域中
    request.setAttribute("haspMap" , hashMap);
%>

${empty emptyNull}<br/>
${empty emptyStr}<br/>
${empty emptyArry}<br/>
${empty emptyList}<br/>
${empty emptyMap}<br/>
如果表达式1的值为真,就返回表达式2的值,如果表达式1的值为假,那么就返回表达式三的值<br/>
${12 != 12 ? "第一个的值" : "第二个的值"}<br/>

. 点运算  和  []中括号运算符<br/>
.运算符,,可以输出Bean对象某个属性的值<br/>
[]中括号运算,可以输出有序集合中某个元素的值<br/>
并且[]中括号运算,还可以输出map集合中key里面包含有特殊字符串的key的值<br/>

${haspMap['a.a.a']}<br/>
${haspMap['b+b+b']}<br/>
${haspMap['c-c-c']}<br/>





<hr>


</body>
</html>
